//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program.  If not, see <http://www.gnu.org/licenses/>.

#include "tachometer.h"

Tachometer::Tachometer(quint16 baseID, CanGateway * canGateway, QObject *parent)
    :baseID(baseID), canGateway(canGateway)
{
    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(updateSpeed()));
    timer->start(100);
}

void Tachometer::setSpeed(qint8 speed)
{
    canGateway->send(baseID, reinterpret_cast<char*> (&speed), 1);
}
void Tachometer::setSpeedLabel(QLabel *speedLabel)
{
    this->speedLabel = speedLabel;
}

void Tachometer::updateSpeed()
{
    if (canGateway->hasMsg(baseID + 1)) {
        this->speedLabel->setText(tr("%1").arg(qint8(canGateway->getMsg(baseID + 1).data[1])));
    }
}

quint16 Tachometer::getBaseID()
{
    return baseID;
}
